The development of electronic devices with printed circuit boards typically involves many steps, known as a design flow. This design flow typically starts with a specification for a new circuit to be implemented with a printed circuit board. The specification of the new circuit can be transformed into a circuit design, such as a netlist, for example, by a schematic capture tool or by synthesizing a logical circuit design, sometimes referred to as a register transfer level (RTL) description of the circuit. The netlist, commonly specified in an Electronic Digital Exchange Format (EDIF), can describe nets or connectivity between various devices or instances in the circuit design.
The design flow continues by verifying functionality of the circuit design, for example, by simulating or emulating the circuit design and verifying that the results of the simulation or emulation correspond with an expected output from the circuit design. The functionality also can be verified by statically checking the circuit design for various attributes that may be problematic during operation of an electronic device built utilizing the circuit design.
Once the circuit design has been functionally verified, the design flow continues to design layout and routing, which includes placing and interconnecting various components or parts into a layout representation of a printed circuit board. This procedure can be implemented in many different ways, but typically, through the use of a layout tool, which can present a graphical view of the printed circuit board and allow a designer to drag or place parts from a library onto the layout representation of the printed circuit board. The layout tool can validate the electronic device and perform various design rule checks on placed parts to ensure that the electronic device can be effectively built.
Most layout tools support placement of parts from a variety of different suppliers, which can allow designers choice in selecting which parts to utilize in the layout representation of the printed circuit board. For example, when an electronic device manufacturer knows a certain supplier will provide the parts for production of an electronic device, the designers can select parts corresponding to that supplier for placement in the layout representation of the printed circuit board.
Often, however, the manufacturer will utilize multiple different suppliers for the same part during production of the electronic device, for example, based on the geographic location of the manufacturing, pricing of the parts, part availability, or the like. Since parts from different manufacturers may have equivalent electrical characteristics, but varying physical characteristics, post-design part substitution can render the electronic device unbuildable. For example, when a substituted part has a larger physical dimension it may be unable to fit inside of a device enclosure or unable to fit next to one or more adjacent components on a printed circuit board. Some designers attempt to compensate for potential part substitution during manufacture of the electronic device by pacing parts with additional spacing tolerances from each other and portions of the enclosure. While this technique can sometimes allow successful part interchangeability during production, it is not foolproof and leads to a larger and usually more expensive implementation of the electronic device.